import api from '../../api';

// 此文件已废弃，请使用 '../api/authApi.ts' 代替
// This file is deprecated, please use '../api/authApi.ts' instead

export interface LoginForm {
  username: string;
  password: string;
  remember?: boolean;
}

export interface User {
  id: string;
  username: string;
  email: string;
  avatar?: string;
  roles: string[];
  permissions: string[];
  createTime: string;
  updateTime: string;
}

export interface LoginResponse {
  token: string;
  user: User;
  expiresIn: number;
}

// 为了向后兼容，保留这些方法，但建议使用 authApi 代替

// 用户登录
// @deprecated 请使用 authApi.systemLogin 代替
export const login = (data: LoginForm): Promise<LoginResponse> => {
  console.warn('警告: login 方法已废弃，请使用 authApi.systemLogin 代替');
  return api.post('/auth/login', data);
};

// 用户登出
// @deprecated 请使用 authApi.logout 代替
export const logout = (): Promise<void> => {
  console.warn('警告: logout 方法已废弃，请使用 authApi.logout 代替');
  return api.post('/auth/logout');
};

// 获取当前用户信息
// @deprecated 请使用 authApi.getCurrentUser 代替
export const getCurrentUser = (): Promise<User> => {
  console.warn('警告: getCurrentUser 方法已废弃，请使用 authApi.getCurrentUser 代替');
  return api.get('/user/current');
};

// 刷新Token
// @deprecated 请使用 authApi.refreshToken 代替
export const refreshToken = (): Promise<{ token: string; expiresIn: number }> => {
  console.warn('警告: refreshToken 方法已废弃，请使用 authApi.refreshToken 代替');
  return api.post('/auth/refresh');
};

// 修改密码
export const changePassword = (data: {
  oldPassword: string;
  newPassword: string;
}): Promise<void> => {
  return api.put('/user/password', data);
};

// 更新用户信息
export const updateProfile = (data: Partial<User>): Promise<User> => {
  return api.put('/user/profile', data);
};

// 上传头像
export const uploadAvatar = (file: File): Promise<{ url: string }> => {
  const formData = new FormData();
  formData.append('file', file);
  return api.post('/user/avatar', formData, {
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  });
}; 